Computers have become increasingly more popular as people depend more and more on computers to facilitate their daily work. In so doing, much data is generated by the computers. The data typically is stored in a storage device, such as a tape, disc or disk drive, CD-R/W, digital versatile disc (DVD) and so on. However, when the data is stored in the storage device for a long time, because of the inherent limitations of the storage device, such as its lifetime, or because of users' improper operations, such as incorrect electrical connection, the data may become unreadable or it may cause an exhaustive read time. Such situations reduce the reading performance.
FIG. 1 illustrates a schematic drawing of a typical data reading system, in which disks are used to store data. This system includes a host 11 and disks D1, D2, D3 and D4. When the data D21 stored in the disk D2 is read by the host 11, some problems might occur in disk D2, such as a media error, to prevent the data D21 from being sent back to the host 11 for a period of time. Such a condition makes the whole system stop for a certain time. For example, when a video display system needs to read some image data from a storage device for image display, if the condition described in the foregoing occurs, the image might fail to display for a few seconds until the image data is successfully read again or being skipped, and then the next image data will be able to be shown on the screen.
U.S. Pat. No. 5,758,057 has disclosed a method to solve the foregoing problem. This method is to automatically generate a redundant data identical to the required data after the read request has been sent to the storage device for certain duration.
However, the method above cannot solve some current problems. For example, if a previous read request has existed in the target storage device and it cannot be completed in a short time, according to the prior art, its corresponding storage device(s), other than the target storage device, is (are) then commanded to generate redundant data identical to the required data. However, if any other uncompleted read request already exists in at least one of the corresponding storage device(s), the previous uncompleted read request in the corresponding storage device(s) still has to be completed first before generating the redundant data. Such a prior processing method may require much more time to rebuilt the redundant data identical to the required data. Moreover, the additional request sent to the corresponding storage device(s) may adversely worsen its reading efficiency owing to too much redundancy reading.
Therefore, it is becoming an important issue of developing a reading method and system to improve the reading efficiency.